/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucuenca.ec.nosql.controller;

import edu.ucuenca.ec.nosql.conexion.DriverMongoDB;
import edu.ucuenca.ec.nosql.modelos.Carrito;
import edu.ucuenca.ec.nosql.modelos.Compras;
import edu.ucuenca.ec.nosql.security.CarritoSession;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author mivkys
 */
@ManagedBean(name = "compraController")
@SessionScoped
public class CompraController implements Serializable {

    private Compras selected;
    private Compras compras;

    public CompraController() {

    }

    @PostConstruct
    public void init() {
        System.out.println("posconstruc carritocontroller");
        compras = new Compras();
        if (CarritoSession.getUsuario() != null) {
            compras = CarritoSession.getCompras();
        }
    }

    public void flush() {
        if (CarritoSession.getUsuario() != null) {
            compras = CarritoSession.getCompras();
        } else {
            compras = new Compras();
            CarritoSession.setCompras(compras);
        }
    }

    public void actualizar() {
        if (CarritoSession.getUsuario() != null) {
            compras = DriverMongoDB.findCompras("compras", CarritoSession.getUsuario().getId());
            CarritoSession.setCompras(compras);
            if(compras==null){
                compras = new Compras();
                compras.setId(CarritoSession.getUsuario().getId());
                CarritoSession.setCompras(compras);
            }
        }
    }

    public void guardar() {
        System.out.println("si ingresa a guardar");
        if (CarritoSession.getUsuario() != null && CarritoSession.getAddProductos() != null) {
            Carrito carrito ;
            DriverMongoDB.setDB_Mongo("online");
            carrito = DriverMongoDB.findCarrito("carrito", CarritoSession.getUsuario().getId());////busca el carrito del usuario;
            if(carrito ==null){
                System.out.println("No hay productos en el carrito");
                return;
            }
            if(compras == null){
                compras = CarritoSession.getCompras();
                if(compras==null){
                    compras = new Compras();
                }
                compras.setId(CarritoSession.getUsuario().getId());
            }
            compras.getCarritos().add(carrito);
            CarritoSession.setCompras(compras);
            DriverMongoDB.insertCompras(compras, "compras");
            DriverMongoDB.remove("carrito", CarritoSession.getUsuario().getId());
            CarritoSession.setAddProductos(null);
        }
    }

    /**
     * @return the selected
     */
    public Compras getSelected() {
        return compras;
    }

    /**
     * @param selected the selected to set
     */
    public void setSelected(Compras selected) {
        this.selected = selected;
    }

}
